﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CamadaDados;

namespace CasaisEmEdificacao.Gerenciador.galeria
{
    public partial class formImagem : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                if(Request["CodGaleria"] != null)
                {
                    int intCodGaleria = Convert.ToInt32(Request["CodGaleria"].ToString());
                    txtCodGaleria.Value = intCodGaleria.ToString();
                    CarregarImagens(Convert.ToInt32(txtCodGaleria.Value));

                    Util.AlertaCliente util = new Util.AlertaCliente();

                    if (Request["Msn"] != null)
                    {

                        lblMensagem.Text = util.MensagemCliente(Convert.ToInt32(Request["Msn"].ToString()));
                        lblMensagem.Visible = true;
                    }

                }
                else
                {
                    Response.Redirect("/gerenciador/galeria/index.aspx");
                }
            }
        }

        protected void btnSalvar_Click(object sender, EventArgs e)
        {


            Boolean fileOK = false;

            if (fileImagem.HasFile)
            {
                // BLOQUEIA A TRANSFERÊNCIA DE ARQUIVOS MAIOR QUE 1MB
                if (fileImagem.PostedFile.ContentLength < 1048576)
                {

                    String extensaoArq = System.IO.Path.GetExtension(fileImagem.FileName).ToLower();

                    String nomeAquivo = fileImagem.FileName;

                    String[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg" };

                    for (int i = 0; i < allowedExtensions.Length; i++)
                    {
                        if (extensaoArq == allowedExtensions[i])
                        {
                            fileOK = true;
                        }
                    }

                    if (fileOK)
                    {

                        var conexao = new DB_CASAIS();

                        string path = Server.MapPath("~/Gerenciador/common/img_galeria/");

                        string strUltimoCodImagem = string.Empty;

                        var objTime = new tb_time();

                        var objImagem = new tb_imagem();

                        var metImagem = new CamadaDados.galeria();

                        strUltimoCodImagem = metImagem.UltimoCodigoImagem().ToString();

                        if (strUltimoCodImagem == null)
                        {
                            strUltimoCodImagem = "0";
                        }

                        fileImagem.SaveAs(path + strUltimoCodImagem + "_" + fileImagem.FileName);

                        objImagem.CO_GALERIA = Convert.ToInt32(txtCodGaleria.Value);
                        objImagem.DS_NOME = strUltimoCodImagem + "_" + fileImagem.FileName;
                        objImagem.DS_DESCRICAO = txtDescricao.Text;
                        
                        metImagem.SalvarImagem(objImagem);

                        Response.Redirect("~/Gerenciador/galeria/formImagem.aspx?msn=1&CodGaleria=" + txtCodGaleria.Value);

                    }
                    else
                    {
                        // Extensão não permitida
                    }

                }
                else
                {
                    // Arquivo Maior que o permitido
                }
            }

            
            

        }

        private void CarregarImagens(int intCodGaleria)
        {
            var metImagem = new CamadaDados.galeria();
            grdImg.DataSource = metImagem.ListarImagens(intCodGaleria);
            grdImg.DataBind();
        }

        protected void grdImg_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            string acao = e.CommandName.ToString();
            string strCodImagem = e.CommandArgument.ToString();

            var metImagem = new CamadaDados.galeria();

            Util.AlertaCliente util = new Util.AlertaCliente();

            switch (acao)
            {

                case "Excluir":
                    
                    var objImagem = metImagem.SelecionarImagem(Convert.ToInt32(strCodImagem));

                    string path = Server.MapPath("~/Gerenciador/common/img_galeria/");

                    if (File.Exists(path + objImagem.DS_NOME))
                    {
                        File.Delete(path + objImagem.DS_NOME);
                    }
                    
                    metImagem.ExcluirImagem(Convert.ToInt32(strCodImagem));
                    CarregarImagens(Convert.ToInt32(txtCodGaleria.Value));
                    lblMensagem.Text = util.MensagemCliente(3);
                    lblMensagem.Visible = true;
                    break;

            }
        }

    }
}